home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 April / macformat-023.iso / Shareware City / Developers / CW CDEV Framework / Framework / CDEVClass.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-12-13  |  3.3 KB  |  204 lines  |  [TEXT/MMCC]

  1. #include "CDEVClass.h"
  2.  
  3. // CW CDEV Framework, by Matthew E. Axsom (chewey@nesw.mv.com)
  4. // -----------------------------------------------------------
  5. // Version History
  6. // -----------------------------------------------------------
  7. // 1.0.1    Released 12/13/94
  8. //            DlgCut() added to cut() method.
  9. //            DlgCopy() added to copy() method.
  10. //            DlgPaste() added to paste() method.
  11. //            DlgDelete() added to clear() method.
  12. //            Note:  The above additions were made to the sample's base class
  13. //           in the original 1.0 distribution, but didn't make it (I'll plead
  14. //            version control problems) into the framework's base class.
  15. //            Thanks to Devon Hubbard for pointing this out!
  16. //            
  17. // 1.0         Released 12/08/94
  18. //            Initial verison
  19.  
  20. cdevObj::cdevObj(short numItems,DialogPtr cp)
  21. {
  22.     lastItem=numItems;
  23.     d=cp;
  24. }
  25.  
  26. // sorry, don't have anything to destroy
  27. cdevObj::~cdevObj(void)
  28. {
  29. }
  30.  
  31. // handle actions not related to initing, opening or closing
  32. long cdevObj::actions(short message,short itemHit)
  33. {
  34.     long    result=0;
  35.     
  36.     switch (message) {
  37.         // handle a click
  38.         case hitDev:
  39.             result=hit(itemHit-lastItem);    // normalize to our values
  40.             break;
  41.         
  42.         // handle a null event by performing any idle time processing
  43.         case nulDev:
  44.             result=idle();
  45.             break;
  46.             
  47.         // handle user item updates
  48.         case updateDev:
  49.             result=update();
  50.             break;
  51.         
  52.         // activate things
  53.         case activDev:
  54.             result=activate();
  55.             break;
  56.         
  57.         // deactivate things
  58.         case deactivDev:
  59.             result=deactivate();
  60.             break;
  61.         
  62.         // keydown or autokey
  63.         case keyEvtDev:
  64.             // filter out command keys and handle them via commandKey()
  65.             if ((e->modifiers & cmdKey) == 0)
  66.                 result=keyDown();
  67.             else
  68.                 commandKey();
  69.             break;
  70.             
  71.         // undo command from edit menu
  72.         case undoDev:
  73.             result=undo();
  74.             break;
  75.         
  76.         // cut command from edit menu
  77.         case cutDev:
  78.             result=cut();
  79.             break;
  80.         
  81.         // copy command from edit menu
  82.         case copyDev:
  83.             result=copy();
  84.             break;
  85.         
  86.         // paste command from edit menu
  87.         case pasteDev:
  88.             result=paste();
  89.             break;
  90.         
  91.         // clear command from edit menu
  92.         case clearDev:
  93.             result=clear();
  94.             break;
  95.     }
  96.     
  97.     return result;
  98. }
  99.  
  100. // handle command keys for normal editing items
  101. long cdevObj::commandKey(void)
  102. {
  103.     long    result=0;
  104.     
  105.     switch (e->message & charCodeMask) {
  106.         case 'z':    // cmd - z
  107.         case 'Z':
  108.             result=undo();
  109.             break;
  110.         
  111.         case 'x':    // cmd - x
  112.         case 'X':
  113.             result=cut();
  114.             break;
  115.         
  116.         case 'c':    // cmd - c
  117.         case 'C':
  118.             result=copy();
  119.             break;
  120.         
  121.         case 'v':    // cmd - v
  122.         case 'V':
  123.             result=paste();
  124.             break;
  125.     }
  126.     
  127.     return result;
  128. }
  129.  
  130. // handle a hit in the control panel.  Note lastItem has already been added to itemHit
  131. long cdevObj::hit(short itemHit)
  132. {
  133.     return noErr;
  134. }
  135.  
  136. // got a nulDev (nullEvent) message
  137. long cdevObj::idle(void)
  138. {
  139.     return noErr;
  140. }
  141.  
  142. // update any user items
  143. long cdevObj::update(void)
  144. {
  145.     return noErr;
  146. }
  147.  
  148. // activate items
  149. long cdevObj::activate(void)
  150. {
  151.     return noErr;
  152. }
  153.  
  154. // deactivate items
  155. long cdevObj::deactivate(void)
  156. {
  157.     return noErr;
  158. }
  159.  
  160. // handle a key down
  161. long cdevObj::keyDown(void)
  162. {
  163.     return noErr;
  164. }
  165.  
  166. // handle an undo
  167. long cdevObj::undo(void)
  168. {
  169.     return noErr;
  170. }
  171.  
  172. // handle a cut
  173. long cdevObj::cut(void)
  174. {
  175.     DlgCut(d);
  176.     
  177.     return noErr;
  178. }
  179.  
  180. // handle a copy
  181. long cdevObj::copy(void)
  182. {
  183.     DlgCopy(d);
  184.     
  185.     return noErr;
  186. }
  187.  
  188. // handle a paste
  189. long cdevObj::paste(void)
  190. {
  191.     DlgPaste(d);
  192.  
  193.     return noErr;
  194. }
  195.  
  196. // handle a clear
  197. long cdevObj::clear(void)
  198. {
  199.     DlgDelete(d);
  200.     
  201.     return noErr;
  202. }
  203.     
  204.